//
//  ZYIteratorImp.h
//  DesignMode
//
//  Created by wangzhipan on 2024/11/13.
//

#import <Foundation/Foundation.h>

@protocol IChannelExitLogic <NSObject>
@property (nonatomic, assign) NSUInteger priority;
@property (nonatomic, copy, nullable) void(^executeBlock)(void) ;
- (nonnull NSString *)exitId;
- (BOOL)enableExecute;
@end

@protocol IIterator <NSObject>
- (void)push:(nonnull id<IChannelExitLogic>)logic;
- (void)remove:(nonnull id<IChannelExitLogic>)logic;
- (void)removeAll;

- (nullable id<IChannelExitLogic>)checkWhoToExecute;
@end

@interface ZYIteratorImp : NSObject <IIterator>

@end
